<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<style lang="css">
  .phone {
    width: 320px;
    height: 260px;
    margin: auto;
    display: flex;
    align-items: flex-end;
    position: relative;
    justify-content: center;
  }

  .phone::before {
    content: '';
    position: absolute;
    width: 84%;
    height: 0px;
    bottom: -10px;
    box-shadow: 0 0 25px 9px rgba(255, 0, 0, 0.33), 50px 10px 25px 8px rgba(18, 255, 0, 0.33), -40px 8px 25px 9px rgba(242, 255, 0, 0.33);
    left: 0;
    right: 0;
    margin: auto;
  }

  .phone::after {
    content: '';
  }

  .phone_content {
    filter: contrast(20);
    width: 100%;
    background-color: white;
    overflow: hidden;
    position: absolute;
  }

  .phone_bottom {
    width: 100%;
    height: 66px;
    background: black;
    display: flex;
    justify-content: center;
    filter: blur(10px);
  }

  input {
    display: none;
  }

  label {
    cursor: pointer;
    display: flex;
    width: 33%;
    height: 66px;
    position: relative;
    z-index: 2;
    align-items: center;
    justify-content: center;
  }

  label>img {
    width: 25px;
    top: 0;
    bottom: 0;
    margin: auto;
    position: absolute;
    z-index: 3;
    transition: 200ms 100ms cubic-bezier(0.14, -0.08, 0.74, 1.4);
  }

  label::before {
    content: '';
    position: absolute;
  }

  .circle {
    width: 60px;
    height: 60px;
    background: black;
    position: absolute;
    top: 152px;
    z-index: 1;
    border-radius: 50%;
    left: 0;
    right: 0;
    margin: auto;
    transition: 200ms cubic-bezier(0.14, -0.08, 0.74, 1.4);
    box-shadow: 0px 82px 20px 0px rgba(128, 128, 128, 0.29);
  }

  .indicator {
    width: 70px;
    height: 70px;
    background-image: linear-gradient(0deg, #f7b0b0, rgba(183, 255, 154, 0)), linear-gradient(0deg, rgba(158, 255, 151, 0.75), rgba(183, 255, 154, 0)), linear-gradient(0deg, #b4fffb, rgba(183, 255, 154, 0));
    background-size: cover;
    background-position: 0 10px;
    border-radius: 50%;
    position: absolute;
    left: 0;
    top: -42px;
    right: 0;
    margin: auto;
    transition: 200ms cubic-bezier(0.14, -0.08, 0.74, 1.4);
  }

  #s1:checked~[for="s1"]>img {
    top: -85px;
  }

  #s1:checked~.circle,
  #s1:checked~div div .indicator {
    left: -66%;
  }

  #s2:checked~[for="s2"]>img {
    top: -85px;
  }

  #s2:checked~.circle,
  #s2:checked~div div .indicator {
    left: 0;
  }

  #s3:checked~[for="s3"]>img {
    top: -85px;
  }

  #s3:checked~.circle,
  #s3:checked~div div .indicator {
    left: 66%;
  }
</style>

<body>
  <div class="phone">
    <input type="radio" name="s" id="s1">
    <input type="radio" name="s" id="s2" checked="checked">
    <input type="radio" name="s" id="s3">
    <label for="s1"><img src="http://co0kie.github.io/codepen/mobile-nav/facebook.svg" alt=""></label>
    <label for="s2"><img src="http://co0kie.github.io/codepen/mobile-nav/twitter.svg" alt=""></label>
    <label for="s3"><img src="http://co0kie.github.io/codepen/mobile-nav/instagram.svg" alt=""></label>
    <div class="circle"></div>
    <div class="phone_content">
      <div class="phone_bottom">
        <span class="indicator"></span>
      </div>
    </div>
  </div>
</body>

</html>